This invention relates generally to methods and apparatus for data communication to and from a host electronic device. More particularly, the present invention relates to improved communication controllers, and methods therefor, that are capable of facilitating data communication to and from a host electronic device in either the fiber channel loop mode or the point-to-point mode.
Fiber channel loops and point-to-point are two different methodologies by which a host electronic device, e.g., a host computer system, can communicate with other electronic devices, e.g., other computer systems, peripherals, or the like. Fiber channel loops, essentially data-carrying fiber optic channels, have in recent times become the popular communication channels for exchanging data among electronic devices, such as between a computer and its peripheral devices and/or other computers in a network. By way of example, a fiber channel loop may be employed to communicate between a host computer system and its disk drives, among the disk drives, or even to carry internet protocol (IP) data.
With reference to FIG. 1, a block diagram is shown of a host computer system 100, representing a computer which may be employed with a fiber channel loop or to facilitate point-to-point communication. In general, host computer system 100 typically includes a bus 102 for communicating information among its subsystems and/or with the outside world. A host processor 104 is coupled with bus 102 for processing data and instructions. A computer readable volatile memory unit 106 (e.g. random access memory unit) may be coupled with bus 102 for temporarily storing data and instructions for host processor 104 and/or other subsystems of host computer system 100. A computer readable non-volatile memory unit 108 (e.g., read-only memory unit) may be coupled with bus 102 for storing nonvolatile data and instructions for host processor 104.
To provide high-capacity, nonvolatile storage, a computer readable data storage device 110 such as a magnetic or optical disk may also be provided. Data may be displayed to the user via a display device 112, which is coupled to bus 102 and may represent, for example, a liquid crystal device, cathode ray tube, or other display device suitable for creating graphic images and alphanumeric characters recognizable to the user. Components of host computer system 100 and its variants are well known to those skilled and will not be elaborated further here for brevity's sake.
To facilitate discussion of the fiber channel loop communication methodology, FIG. 2A shows a block diagram of a prior art host adapter card 114 suitable for use with host computer system 100. Host adapter card 114, which may for example be coupled with bus 102 of the computer system of FIG. 1, represents the interface circuit between host computer system 100 with a fiber channel loop 117. As shown, host adapter card 114 includes a communication controller 116 (typically in the form of a serial optical controller), which facilitates communication between host computer system 100 and nodes 118, 120, and 122 via fiber channel loop 117. Nodes 118, 120, and 122 include devices 124, 126, and 128 respectively.
Communication over fiber channel loop 117 is typically achieved in the serial domain, i.e., data frames are transmitted serially on the fiber channel loop. Accordingly, it is typically the case that only one node on fiber channel loop 117 may transmit at one time. To gain access to fiber channel loop 117 for transmission purposes, each device on the fiber channel loop must arbitrate for access. By way of example, communication controller 116 of host adapter card 114 may be employed to arbitrate on behalf of host computer system 100. Techniques of implementing automatic arbitration and communication control have been described in the aforementioned co-pending patent application (Attorney Docket No. P1802/SUN1P111). Generally speaking, once arbitration is won, communication controller 116 may send an OPEN primitive to the target device via the loop to ready the target device for data receipt. Host computer 100 may then employ communication controller 116 to send data to the target device. On the loop, data is typically transmitted at the rate of about 1.06 Gbits/second in four-byte primitive chunks. Communication is terminated, in general, when communication controller 116 sends a CLOSE primitive to the target device to return the target device and communication controller 116 to the MONITOR state. If devices 124 and 128, for example, are in communication while communication controller 116 is in the MONITOR state, data transmitted between these two devices may merely pass through communication controller 116 without being acted upon.
Point-to-point communication, on the other hand, requires no such arbitration. To facilitate discussion, FIG. 2B illustrates the point-to-point communication methodology wherein host computer 100 is connected to a target device 150 via a point-to-point host adapter circuit 152. Target device 150 in turns communicate with host computer 100 via a point-to-point host adapter circuit 154 as shown. Since the connection is dedicated, there is no need for arbitration. Accordingly, there is little latency between the time host device 100 wishes to begin communication and the time data transmission actually begins. Generally speaking, data is transmitted serially over point-to-point channel 156 in the point-to-point technique. As can be appreciated, the point-to-point communication methodology does not require the pass-through capability of the fiber channel loop mode since the dedicated point-to-point communication channel is not shared by other devices for communication without involving host device 100.
In the past, point-to-point controller 152 and communication controller 116 are typically separate devices, implemented on separate cards. As host computer 100 becomes more sophisticated, however, it becomes clear that host computer 100 may sometime be expected to able to communicate in either or both techniques (i.e., point-to-point and/or fiber channel loop). In this situation, the user of host computer 100 would typically be expected to purchase both point-to-point controller 152 and communication controller 116 and swap them as necessary depending on which communication technique is currently employed.
As can be appreciated, this is an expensive option as it forces the user of host computer 100 to purchase, maintain, and periodically update both controllers. Additionally, it is inconvenient to require users to open up the host computer and swap controllers (which are typically implemented as plug-in cards into the bus of the host computer). In the hands of inexperienced users, the swapping operation may endanger the host computer or even the user himself.
In view of the foregoing, there are desired improved communication controllers, and methods therefor, that are capable of facilitating data communication to and from a host electronic device either in a fiber channel loop mode or a point-to-point mode. The improved communication controller preferably implements the dual-mode communication capability in a single communication controller circuit, or even a single chip, thereby reducing costs to the user while improving usability.